ContinueWhenAny(TAntecedentResult, TResult) Method (Task(TAntecedentResult)[], Func(Task(TAntecedentResult), TResult), TaskContinuationOptions)

Task Parallel System.Threading

Creates a continuation Task that will be started upon the completion of any Task in the provided set.

Namespace:  System.Threading.Tasks
Assembly:  System.Threading (in System.Threading.dll)

Syntax

Visual Basic (Declaration)
Public Function ContinueWhenAny(Of TAntecedentResult, TResult) ( _
	tasks As Task(Of TAntecedentResult)(), _
	continuationFunction As Func(Of Task(Of TAntecedentResult), TResult), _
	continuationOptions As TaskContinuationOptions _
) As Task(Of TResult)
C#
public Task<TResult> ContinueWhenAny<TAntecedentResult, TResult>(
	Task<TAntecedentResult>[] tasks,
	Func<Task<TAntecedentResult>, TResult> continuationFunction,
	TaskContinuationOptions continuationOptions
)

Parameters

tasks
Type: array< System.Threading.Tasks..::.Task<(Of <(TAntecedentResult>)>) >[]()[]
The array of tasks from which to continue when one task completes.
continuationFunction
Type: System..::.Func<(Of <(Task<(Of <(TAntecedentResult>)>), TResult>)>)
The function delegate to execute when one task in the tasks array completes.
continuationOptions
Type: System.Threading.Tasks..::.TaskContinuationOptions
The TaskContinuationOptions value that controls the behavior of the created continuation Task.

Type Parameters

TAntecedentResult
The type of the result of the antecedent tasks.
TResult
The type of the result that is returned by the continuationFunction delegate and associated with the created Task<(Of <(TResult>)>).

Return Value

The new continuation Task<(Of <(TResult>)>).

Remarks

The NotOn* and OnlyOn* TaskContinuationOptions, which constrain for which TaskStatus states a continuation will be executed, are illegal with ContinueWhenAny.

Exceptions

ExceptionCondition
System..::.ArgumentNullExceptionThe exception that is thrown when the tasks array is null.
System..::.ArgumentNullExceptionThe exception that is thrown when the continuationFunction argument is null.
System..::.ArgumentExceptionThe exception that is thrown when the tasks array contains a null value.
System..::.ArgumentExceptionThe exception that is thrown when the tasks array is empty.
System..::.ArgumentOutOfRangeExceptionThe exception that is thrown when the continuationOptions argument specifies an invalid TaskContinuationOptions value.
System..::.ObjectDisposedExceptionThe exception that is thrown when one of the elements in the tasks array has been disposed.

See Also